// app.js
import { wxShowModal, wxToast } from '@/utils/wxUtil'

App({
  onLaunch(options) {
    const { scene } = options
    this.globalData.isSinglePage = scene === 1154

    /**
     * 初次加载判断网络情况
     * 无网络状态下根据实际情况进行调整
     */
    wx.getNetworkType({
      success: (res) => {
        const networkType = res.networkType
        if (networkType === 'none') {
          this.globalData.isConnected = false
          wxToast({ title: '当前无网络', icon: 'loading', duration: 2000 })
        }
      }
    });

    /**
     * 监听网络状态变化
     * 可根据业务需求进行调整
     */
    wx.onNetworkStatusChange((res) => {
      if (!res.isConnected) {
        this.globalData.isConnected = false
        wxToast({ title: '网络已断开', icon: 'loading', duration: 2000 })
      } else {
        this.globalData.isConnected = true
        wx.hideToast()
      }
    });
  },
  onShow() {
    // 检测新版本
    const loadUpdate = (um) => {
      wx.showLoading({
        title: '正在更新',
        mask: true
      })

      um.onUpdateReady(() => {
        wx.hideLoading()
        wxShowModal({
          title: '更新提示',
          content: '新版本已经准备好，请重启应用？',
          showCancel: false,
          onConfirm: () => {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            um.applyUpdate()
          }
        })
      })

      um.onUpdateFailed(() => {
        wx.hideLoading()
        wxShowModal({
          content: '检查到有新版本，但下载失败，请检查网络后重试',
          showCancel: false
        })
      })
    }
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(res => {
      if (!res.hasUpdate) return

      wxShowModal({
        title: '更新提示',
        content: '检测到新版本，点击更新',
        showCancel: false,
        confirmText: '更新',
        onConfirm: () => {
          loadUpdate(updateManager)
        }
      })
    })
  },
  globalData: {
    /** 是否在单页模式 */
    isSinglePage: false,
    /** 登录成功后的跳转链接 */
    loginAfterUrl: '',
    /** 网络连接状态 */
    isConnected: true,
    /** 登录状态 */
    token: undefined,
    /** 设备id */
    HardID: undefined
  }
})
